#ifndef __COMPONENT_CREATURE_SOUNDS_H__
#define __COMPONENT_CREATURE_SOUNDS_H__

#include "Components/Component.hpp"
#include "Engine/Vector3.hpp"

using namespace PocketSurvival::Engine;

namespace PocketSurvival
{
    struct ComponentCreature;
    class SubsystemTimeOfDay;
    class PackageManager;

    struct ComponentCreatureSounds : public Component
    {
        ComponentCreature *componentCreature;
        SubsystemTimeOfDay *timeOfDay;

        double lastSoundTime = -100;

        void playIdleSound(bool skipIfRecentlyPlayed);
        void playPainSound();
        void playMoanSound();
        void playSneezeSound();
        void playCoughSound();
        void playPukeSound();
        void playAttackSound();

		virtual const std::string &getName() const override;
        static const std::string &GetName();
        virtual void load(const nlohmann::json &jsonData) override;
    };
    
}

#endif